package com.hqyj.freemovie.front.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.JdbcType;
import javax.persistence.*;
import java.util.List;
import java.util.Set;

@Entity //表示该实体类要映射为一张表
@Data
@Table(name = "movie")
@Builder
@NoArgsConstructor
@AllArgsConstructor

//com.hqyj.freemovie.front.domain.Movie
public class Movie extends BaseEntity {

    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @TableId(type = IdType.AUTO)  //MybatisPlus的主键主键必须写

    private Integer id; //电影的编号，整数自动递增。

    private String name; //电影的名字

    private String director; //电影的导演；

    private String playDate; //电影的上映时间

    private String type; //电影的类型

    /*
    @ElementCollection
    @CollectionTable(name = "movie_tags",joinColumns = {@JoinColumn(name = "m_id",referencedColumnName = "id")})
    private Set<String> tags; //电影的标签;
    */

    private int duration; //电影时长（单位：分钟）

    private String logo; //电影的海报，图片的URL地址。

    private String introduce; //电影的简介;

    @Transient //这个字段我不参与持久化...
    @TableField(exist = false,jdbcType = JdbcType.BLOB,typeHandler = FastjsonTypeHandler.class)
    //@TableField(exist = false)
    private List<String> movieTagsList; //电影的标签；

    private String url; //电影的播放地址；

}
